﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Com.AlbLab.GEP.Domain.Entities
{
    public class GEP_TESTATA
    {
        public GEP_TESTATA() { }
        
        public GEP_TESTATA(decimal id_tes_cod_pratica)
        {
            this.id_tes_cod_pratica = id_tes_cod_pratica;
            this.gep_ana_serv = new GEP_ANA_SERV();
            this.gep_ana_vendi = new GEP_ANA_VENDI();
            this.gep_risposta = new GEP_RISPOSTA();
            this.gep_risposta.Resp_Id = id_tes_cod_pratica;
            // **
            // Se il codice della pratica è uguale a -1 si tratta di una nuova pratica per cui
            // si imposta lo stato a 0 (non ancora caricata) e la data di arrivo ad oggi.
            // **
            if (id_tes_cod_pratica == -1)
            {
                this.Tes_Stato = 0;
            }
        }

        public GEP_TESTATA(decimal id_tes_cod_pratica, string tes_cod_servizio, string tes_cod_contr_disp)
        {
            this.id_tes_cod_pratica = id_tes_cod_pratica;
            this.gep_ana_serv = new GEP_ANA_SERV(tes_cod_servizio);
            this.gep_ana_vendi = new GEP_ANA_VENDI(tes_cod_contr_disp);
            this.gep_risposta = new GEP_RISPOSTA();
            this.gep_risposta.Resp_Id = id_tes_cod_pratica;
        }

        private decimal id_tes_cod_pratica;
        private decimal tes_stato;
        private string tes_piva_utente;        //11
        private string tes_piva_distributore;  //11
        private string tes_cod_prat_utente;    //15   
        private string tes_pod;               //14
        private string tes_codfis_cli;          //16
        private string tes_pariva_cli;        //11
        private string tes_cod_pres;                             //2
        private string tes_tel_cli;          //20
        private string tes_filename_ric;                  //100
        private System.DateTime tes_dt_arr_pra;
        private System.DateTime tes_dt_ins_pra;
        private System.DateTime tes_dt_chi_pra;
        private System.DateTime tes_dt_inv_pra;
        private string tes_des_pra;         //100
        private string tes_ragsoc_ute;       //100
        private string tes_ragsoc_cli;        //100  
        private string tes_ind_cli;           //100
        private string tes_ind_fornit;        //100
        private string tes_cod_contr_cli;      //8  --> todo
        private string tes_mis_eleco;          //2
        private string tes_matr_att;          //17
        private string tes_matr_rea;            //17
        private string tes_matr_pot;           //17
        private string tes_tensione;           //1
        private decimal tes_potenza_contr;
        private decimal tes_potenza_toll;
        private string tes_fasi;                //1
        private string tes_uso;               //100
        private string tes_k;
        private string tes_note; //500
        private System.DateTime data_inserimento;
        private decimal tes_ufficio_assegnazione;
        private string tes_ultima_fase;
        
        //public decimal	Id_Tes_Cod_Pratica{get{return this.id_tes_cod_pratica;}set{this.id_tes_cod_pratica=value;}}
        public decimal Tes_Stato { get { return this.tes_stato; } set { this.tes_stato = value; } }
        public string	Tes_Piva_Utente{get{return this.tes_piva_utente;}set{this.tes_piva_utente=value;}}
        public string	Tes_Piva_Distributore{get{return this.tes_piva_distributore;}set{this.tes_piva_distributore=value;}}
        public string	Tes_Cod_Prat_Utente{get{return this.tes_cod_prat_utente;}set{this.tes_cod_prat_utente=value;}}
        public string	Tes_Pod{get{return this.tes_pod;}set{this.tes_pod=value;}}
        public string	Tes_Codfis_Cli{get{return this.tes_codfis_cli;}set{this.tes_codfis_cli=value;}}
        public string	Tes_Pariva_Cli{get{return this.tes_pariva_cli;}set{this.tes_pariva_cli=value;}}
        public string	Tes_Cod_Pres{get{return this.tes_cod_pres;}set{this.tes_cod_pres=value;}}
        public string  Tes_Tel_Cli{get{return this.tes_tel_cli;}set{this.tes_tel_cli=value;}}
        public string  Tes_Filename_Ric{get{return this.tes_filename_ric;}set{this.tes_filename_ric=value;}}
        public System.DateTime Tes_Dt_Arr_Pra{get{return this.tes_dt_arr_pra;}set{this.tes_dt_arr_pra=value;}}
        public System.DateTime Tes_Dt_Ins_Pra { get { return this.tes_dt_ins_pra; } set { this.tes_dt_ins_pra = value; } }
        public System.DateTime Tes_Dt_Chi_Pra { get { return this.tes_dt_chi_pra; } set { this.tes_dt_chi_pra = value; } }
        public System.DateTime Tes_Dt_Inv_Pra { get { return this.tes_dt_inv_pra; } set { this.tes_dt_inv_pra = value; } }
        public string	Tes_Des_Pra{get{return this.tes_des_pra;}set{this.tes_des_pra=value;}}
        public string Tes_DBA_Ragsoc_Ute { get { return this.tes_ragsoc_ute; } set { this.tes_ragsoc_ute = value; } }
        public string Tes_DBA_Ragsoc_Cli { get { return this.tes_ragsoc_cli; } set { this.tes_ragsoc_cli = value; } }
        public string Tes_DBA_Ind_Cli { get { return this.tes_ind_cli; } set { this.tes_ind_cli = value; } }
        public string Tes_DBA_Ind_Fornit { get { return this.tes_ind_fornit; } set { this.tes_ind_fornit = value; } }
        public string Tes_DBA_Cod_Contr_Cli { get { return this.tes_cod_contr_cli; } set { this.tes_cod_contr_cli = value; } }
        public string Tes_DBA_Mis_Eleco { get { return this.tes_mis_eleco; } set { this.tes_mis_eleco = value; } }
        public string Tes_DBA_Matr_Att { get { return this.tes_matr_att; } set { this.tes_matr_att = value; } }
        public string Tes_DBA_Matr_Rea { get { return this.tes_matr_rea; } set { this.tes_matr_rea = value; } }
        public string Tes_DBA_Matr_Pot { get { return this.tes_matr_pot; } set { this.tes_matr_pot = value; } }
        public string Tes_DBA_Tensione { get { return this.tes_tensione; } set { this.tes_tensione = value; } }
        public decimal Tes_DBA_Potenza_Contr { get { return this.tes_potenza_contr; } set { this.tes_potenza_contr = value; } }
        public decimal Tes_DBA_Potenza_Toll { get { return this.tes_potenza_toll; } set { this.tes_potenza_toll = value; } }
        public string Tes_DBA_Fasi { get { return this.tes_fasi; } set { this.tes_fasi = value; } }
        public string Tes_DBA_Uso { get { return this.tes_uso; } set { this.tes_uso = value; } }
        public string Tes_DBA_K { get { return this.tes_k; } set { this.tes_k = value; } }
        public string	Tes_Note{get{return this.tes_note;}set{this.tes_note=value;}}
        public decimal Tes_ufficio_assegnazione { get { return this.tes_ufficio_assegnazione; } set { this.tes_ufficio_assegnazione = value; } }
        public string Tes_ultima_fase { get { return this.tes_ultima_fase; } set { this.tes_ultima_fase = value; } }
        private GEP_RISPOSTA gep_risposta;
        private GEP_ESITO gep_esito;
        private List<GEP_FASE> gep_fase;
        private GEP_ANA_SERV gep_ana_serv;
        private GEP_ANA_VENDI gep_ana_vendi;
        public decimal Id_tes_cod_pratica
        {
            get { return id_tes_cod_pratica; }
            set { id_tes_cod_pratica = value; }
        }
        
        public GEP_ANA_SERV Gep_ana_serv
        {
            get
            {
                return this.gep_ana_serv;
            }
            set
            {
                this.gep_ana_serv = value;
            }
        }
        public GEP_ANA_VENDI Gep_ana_vendi
        {
            get
            {
                return this.gep_ana_vendi;
            }
            set
            {
                this.gep_ana_vendi = value;
            }
        }
        public GEP_RISPOSTA Gep_risposta
        {
            get
            {
                return this.gep_risposta;
            }
            set
            {
                this.gep_risposta = value;
            }
        }
        public string Tes_Cod_Servizio
        {
            get { return Gep_ana_serv.Id_ser_cod_servizio; }
            set { Gep_ana_serv.Id_ser_cod_servizio = value; }
        }
        public string Tes_Cod_Contr_Disp
        {
            get { return Gep_ana_vendi.Id_ven_cod_contr_disp; }
            set { Gep_ana_vendi.Id_ven_cod_contr_disp = value; }
        }

        public GEP_ESITO Gep_esito
        {
            get
            {
                return this.gep_esito;
            }
            set
            {
                this.gep_esito = value;
            }
        }
        public List<GEP_FASE> Gep_fase
        {
            get
            {
                return this.gep_fase;
            }
            set
            {
                this.gep_fase = value;
            }
        }
    }
}
